package abg.core.service.sys;


import abg.core.domain.db.SysMenu;
import com.alibaba.fastjson2.JSONArray;

import java.util.Collection;
import java.util.HashSet;
import java.util.List;

/**
 * 资源表服务
 */
public interface SysMenuService {

    boolean insert(SysMenu param);

    boolean delete(String ids);

    boolean update(SysMenu param);

    //根据ID和PID查库，返回树结构JSON数组 ["PID-0","PID-01","自身ID"]
    JSONArray getTreeIds(String nowId, String pid);

    List<SysMenu> allMenuCache();

    //返回已登录用户具备的菜单
    List<SysMenu> userHasMenu();

    /**
     * 根据菜单ID,查询包含自身的全路径数据，去重后返回（走缓存）
     */
    List<SysMenu> getTreePathData(Collection<String> menuIds);

    /**
     * 根据菜单ID 集合，获取查询包含自身的全路径数据，具备的资源，去重后返回（走缓存）
     */
    HashSet<String> getTreePathMenuHasRes(Collection<String> menuIds);
}

